package com.example.people_big_people

import android.app.Application
import android.content.Context
import android.util.Log

/**
 * @Author      : 鲁班七号
 * @package_name       : com.example.people_big_people
 * @Date        : on 2022-10-13 15:35.
 * @Description :描述
 */
class MyApplication : Application() {

    companion object {
        val TAG = "MyApplication"
    }

    override fun onCreate() {
        super.onCreate()
    }

    /**
     * 低内存情况下
     */
    override fun onLowMemory() {
        super.onLowMemory()
    }

    override fun onTerminate() {
        super.onTerminate()
    }


    override fun attachBaseContext(base: Context?) {
        super.attachBaseContext(base)
    }

    override fun onTrimMemory(level: Int) {
        super.onTrimMemory(level)
        Log.w(TAG, "=======> onTrimMemory, level=" + level + "=>" + printLevel(level))
    }

    private fun printLevel(level: Int): String {
        val desc: String = when (level) {
            TRIM_MEMORY_COMPLETE -> "进程在LRU尾部,如果没有足够的内存, 将很快被杀死"
            TRIM_MEMORY_MODERATE -> "进程在LRU中部,如果系统进一步需要内存, 可能会被杀死"
            TRIM_MEMORY_BACKGROUND -> "进程在LRU头部,虽然本进程不会被高优杀死, 但系统已经开始准备杀死LRU列表中的其他进程"
            TRIM_MEMORY_UI_HIDDEN -> "界面不可见，建议释放UI资源"
            TRIM_MEMORY_RUNNING_CRITICAL -> "虽然进程不会被高优杀死, 但系统已经开始准备杀死LRU列表中的其他进程，应该释放无用资源以防止性能下降"
            TRIM_MEMORY_RUNNING_LOW -> "虽然进程不会被高优杀死, 但系统已经开始准备杀死LRU列表中的其他进程，应该释放不必要的资源来提供系统性能"
            TRIM_MEMORY_RUNNING_MODERATE -> "系统已经进入了低内存的状态，进程正在运行但是不会被杀死"
            else -> ""
        }
        return desc
    }
}